The detection of human presence in images is useful in a variety of applications, such as, for example, video surveillance, face and gesture recognition, human-computer interaction, image/video indexing and retrieval and image editing. There are a variety of known approaches for detecting human presence in an image, including feature-based, motion-based and color-based approaches. Generally, feature-based approaches attempt to identify particular regions of a user's body, such as, for example, the face, based on the detection of certain features, such as the eyes, the nose and the mouth. Motion-based approaches generally operate on the principle that a moving region in an image is likely to be a region of the user's body. Color-based approaches generally attempt to detect human skin tone (also referred to herein as “skin color” and “skin pigmentation”) regions in an image, which, in turn, correlates to the human presence in an image.
Skin tone detection can play a significant role in facilitating human-computer interaction. For example, skin tone detection may serve as an enabling technology for face detection, localization, recognition, and/or tracking and gesture recognition. For example, skin tone detection can be used as a pre-filter in image processing by classifying an image into skin and non-skin regions. This pre-filtering process can aid in accelerating subsequent phases of facial and/or gesture recognition algorithms by focusing these algorithms onto areas of interest (i.e. skin regions), as well as enable robust edge detection algorithms used in current image processing applications.
Images can depict visual information using various color spaces. A color space can describe the way colors are represented (e.g., using one to four values representing color components). For example, in a red-green-blue (RGB) color space, a color can be described using three values—one each for red, green, and blue. Thus, three values can be used to describe the color of each pixel in an RGB image. When an intended interpretation of a color space's components is known, the set of possible colors can be referred to as a color space. For example, the three values associated with an RGB color can be mixed additively to produce a specific color in an RGB color space. Some skin tone detection systems may provide a skin model for a specific color space and further process regions of an image using the skin model to fit any specific application.
Accurate skin tone detection, however, may be complicated by the fact that a person's skin tone may vary depending on a variety of factors, such as, for example, illumination conditions (illumination geometry and color), variations in individual skin color, background of the environment of the image, etc. For example, the appearance of skin can change in color and shape, and may be affected by occluding objects, such as, for example, clothing, hair, eyeglasses, etc. Moreover, changes in intensity, color and location of light sources can also affect skin appearance, as well as other objects within an environment that may cast shadows or reflect additional light onto a person's skin, further complicating the skin detection process. Another challenge comes from the fact that many objects in the real world might have skin-tone colors. For example, wood, leather, skin-colored clothing, hair, sand, etc.
A challenge in skin tone detection systems is to make skin detection robust so as to accommodate variations in skin appearance. Current skin tone detection systems are limited in that that they may not adequately account for the large variations in skin tone that may occur depending on the lighting and other factors in the environment. For example, some skin tone detection systems utilize a single color space while some systems use static (e.g. fixed) thresholds in multi-color spaces. However, systems relying on a single color space or static thresholds may fail to accurately detect skin tone in unconstrained imaging conditions, where skin tone can vary significantly across an image due to external factors.